<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span class="hs-pragma">{-# LANGUAGE CPP #-}</span><span class="hs-cpp">
#if defined(__GLASGOW_HASKELL__)
</span><span class="hs-pragma">{-# LANGUAGE Safe #-}</span><span class="hs-cpp">
#endif
</span><span class="hs-cpp">
#include &quot;containers.h&quot;
</span><span>
</span><span id="line-8"></span><span class="hs-comment">-----------------------------------------------------------------------------</span><span>
</span><span id="line-9"></span><span class="hs-comment">-- |</span><span>
</span><span id="line-10"></span><span class="hs-comment">-- Module      :  Data.Map.Lazy</span><span>
</span><span id="line-11"></span><span class="hs-comment">-- Copyright   :  (c) Daan Leijen 2002</span><span>
</span><span id="line-12"></span><span class="hs-comment">--                (c) Andriy Palamarchuk 2008</span><span>
</span><span id="line-13"></span><span class="hs-comment">-- License     :  BSD-style</span><span>
</span><span id="line-14"></span><span class="hs-comment">-- Maintainer  :  libraries@haskell.org</span><span>
</span><span id="line-15"></span><span class="hs-comment">-- Portability :  portable</span><span>
</span><span id="line-16"></span><span class="hs-comment">--</span><span>
</span><span id="line-17"></span><span class="hs-comment">--</span><span>
</span><span id="line-18"></span><span class="hs-comment">-- = Finite Maps (lazy interface)</span><span>
</span><span id="line-19"></span><span class="hs-comment">--</span><span>
</span><span id="line-20"></span><span class="hs-comment">-- The @'Map' k v@ type represents a finite map (sometimes called a dictionary)</span><span>
</span><span id="line-21"></span><span class="hs-comment">-- from keys of type @k@ to values of type @v@. A 'Map' is strict in its keys but lazy</span><span>
</span><span id="line-22"></span><span class="hs-comment">-- in its values.</span><span>
</span><span id="line-23"></span><span class="hs-comment">--</span><span>
</span><span id="line-24"></span><span class="hs-comment">-- The functions in &quot;Data.Map.Strict&quot; are careful to force values before</span><span>
</span><span id="line-25"></span><span class="hs-comment">-- installing them in a 'Map'. This is usually more efficient in cases where</span><span>
</span><span id="line-26"></span><span class="hs-comment">-- laziness is not essential. The functions in this module do not do so.</span><span>
</span><span id="line-27"></span><span class="hs-comment">--</span><span>
</span><span id="line-28"></span><span class="hs-comment">-- When deciding if this is the correct data structure to use, consider:</span><span>
</span><span id="line-29"></span><span class="hs-comment">--</span><span>
</span><span id="line-30"></span><span class="hs-comment">-- * If you are using 'Prelude.Int' keys, you will get much better performance for most</span><span>
</span><span id="line-31"></span><span class="hs-comment">-- operations using &quot;Data.IntMap.Lazy&quot;.</span><span>
</span><span id="line-32"></span><span class="hs-comment">--</span><span>
</span><span id="line-33"></span><span class="hs-comment">-- * If you don't care about ordering, consider using @Data.HashMap.Lazy@ from the</span><span>
</span><span id="line-34"></span><span class="hs-comment">-- &lt;https://hackage.haskell.org/package/unordered-containers unordered-containers&gt;</span><span>
</span><span id="line-35"></span><span class="hs-comment">-- package instead.</span><span>
</span><span id="line-36"></span><span class="hs-comment">--</span><span>
</span><span id="line-37"></span><span class="hs-comment">-- For a walkthrough of the most commonly used functions see the</span><span>
</span><span id="line-38"></span><span class="hs-comment">-- &lt;https://haskell-containers.readthedocs.io/en/latest/map.html maps introduction&gt;.</span><span>
</span><span id="line-39"></span><span class="hs-comment">--</span><span>
</span><span id="line-40"></span><span class="hs-comment">-- This module is intended to be imported qualified, to avoid name clashes with</span><span>
</span><span id="line-41"></span><span class="hs-comment">-- Prelude functions:</span><span>
</span><span id="line-42"></span><span class="hs-comment">--</span><span>
</span><span id="line-43"></span><span class="hs-comment">-- &gt; import qualified Data.Map.Lazy as Map</span><span>
</span><span id="line-44"></span><span class="hs-comment">--</span><span>
</span><span id="line-45"></span><span class="hs-comment">-- Note that the implementation is generally /left-biased/. Functions that take</span><span>
</span><span id="line-46"></span><span class="hs-comment">-- two maps as arguments and combine them, such as `union` and `intersection`,</span><span>
</span><span id="line-47"></span><span class="hs-comment">-- prefer the values in the first argument to those in the second.</span><span>
</span><span id="line-48"></span><span class="hs-comment">--</span><span>
</span><span id="line-49"></span><span class="hs-comment">--</span><span>
</span><span id="line-50"></span><span class="hs-comment">-- == Detailed performance information</span><span>
</span><span id="line-51"></span><span class="hs-comment">--</span><span>
</span><span id="line-52"></span><span class="hs-comment">-- The amortized running time is given for each operation, with /n/ referring to</span><span>
</span><span id="line-53"></span><span class="hs-comment">-- the number of entries in the map.</span><span>
</span><span id="line-54"></span><span class="hs-comment">--</span><span>
</span><span id="line-55"></span><span class="hs-comment">-- Benchmarks comparing &quot;Data.Map.Lazy&quot; with other dictionary implementations</span><span>
</span><span id="line-56"></span><span class="hs-comment">-- can be found at https://github.com/haskell-perf/dictionaries.</span><span>
</span><span id="line-57"></span><span class="hs-comment">--</span><span>
</span><span id="line-58"></span><span class="hs-comment">--</span><span>
</span><span id="line-59"></span><span class="hs-comment">-- == Warning</span><span>
</span><span id="line-60"></span><span class="hs-comment">--</span><span>
</span><span id="line-61"></span><span class="hs-comment">-- The size of a 'Map' must not exceed @'Prelude.maxBound' :: 'Prelude.Int'@.</span><span>
</span><span id="line-62"></span><span class="hs-comment">-- Violation of this condition is not detected and if the size limit is exceeded,</span><span>
</span><span id="line-63"></span><span class="hs-comment">-- its behaviour is undefined.</span><span>
</span><span id="line-64"></span><span class="hs-comment">--</span><span>
</span><span id="line-65"></span><span class="hs-comment">--</span><span>
</span><span id="line-66"></span><span class="hs-comment">-- == Implementation</span><span>
</span><span id="line-67"></span><span class="hs-comment">--</span><span>
</span><span id="line-68"></span><span class="hs-comment">-- The implementation of 'Map' is based on /size balanced/ binary trees (or</span><span>
</span><span id="line-69"></span><span class="hs-comment">-- trees of /bounded balance/) as described by:</span><span>
</span><span id="line-70"></span><span class="hs-comment">--</span><span>
</span><span id="line-71"></span><span class="hs-comment">--    * Stephen Adams, \&quot;/Efficient sets: a balancing act/\&quot;,</span><span>
</span><span id="line-72"></span><span class="hs-comment">--     Journal of Functional Programming 3(4):553-562, October 1993,</span><span>
</span><span id="line-73"></span><span class="hs-comment">--     &lt;http://www.swiss.ai.mit.edu/~adams/BB/&gt;.</span><span>
</span><span id="line-74"></span><span class="hs-comment">--    * J. Nievergelt and E.M. Reingold,</span><span>
</span><span id="line-75"></span><span class="hs-comment">--      \&quot;/Binary search trees of bounded balance/\&quot;,</span><span>
</span><span id="line-76"></span><span class="hs-comment">--      SIAM journal of computing 2(1), March 1973.</span><span>
</span><span id="line-77"></span><span class="hs-comment">--</span><span>
</span><span id="line-78"></span><span class="hs-comment">--  Bounds for 'union', 'intersection', and 'difference' are as given</span><span>
</span><span id="line-79"></span><span class="hs-comment">--  by</span><span>
</span><span id="line-80"></span><span class="hs-comment">--</span><span>
</span><span id="line-81"></span><span class="hs-comment">--    * Guy Blelloch, Daniel Ferizovic, and Yihan Sun,</span><span>
</span><span id="line-82"></span><span class="hs-comment">--      \&quot;/Just Join for Parallel Ordered Sets/\&quot;,</span><span>
</span><span id="line-83"></span><span class="hs-comment">--      &lt;https://arxiv.org/abs/1602.02120v3&gt;.</span><span>
</span><span id="line-84"></span><span class="hs-comment">--</span><span>
</span><span id="line-85"></span><span class="hs-comment">-----------------------------------------------------------------------------</span><span>
</span><span id="line-86"></span><span>
</span><span id="line-87"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">Data.Map.Lazy</span><span> </span><span class="hs-special">(</span><span>
</span><span id="line-88"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Map type</span></span><span>
</span><span id="line-89"></span><span>    </span><span class="annot"><a href="Data.Map.Internal.html#Map"><span class="hs-identifier">Map</span></a></span><span>              </span><span class="hs-comment">-- instance Eq,Show,Read</span><span>
</span><span id="line-90"></span><span>
</span><span id="line-91"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Construction</span></span><span>
</span><span id="line-92"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#empty"><span class="hs-identifier">empty</span></a></span><span>
</span><span id="line-93"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#singleton"><span class="hs-identifier">singleton</span></a></span><span>
</span><span id="line-94"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#fromSet"><span class="hs-identifier">fromSet</span></a></span><span>
</span><span id="line-95"></span><span>
</span><span id="line-96"></span><span>    </span><span class="annot"><span class="hs-comment">-- ** From Unordered Lists</span></span><span>
</span><span id="line-97"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#fromList"><span class="hs-identifier">fromList</span></a></span><span>
</span><span id="line-98"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#fromListWith"><span class="hs-identifier">fromListWith</span></a></span><span>
</span><span id="line-99"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#fromListWithKey"><span class="hs-identifier">fromListWithKey</span></a></span><span>
</span><span id="line-100"></span><span>
</span><span id="line-101"></span><span>    </span><span class="annot"><span class="hs-comment">-- ** From Ascending Lists</span></span><span>
</span><span id="line-102"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#fromAscList"><span class="hs-identifier">fromAscList</span></a></span><span>
</span><span id="line-103"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#fromAscListWith"><span class="hs-identifier">fromAscListWith</span></a></span><span>
</span><span id="line-104"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#fromAscListWithKey"><span class="hs-identifier">fromAscListWithKey</span></a></span><span>
</span><span id="line-105"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#fromDistinctAscList"><span class="hs-identifier">fromDistinctAscList</span></a></span><span>
</span><span id="line-106"></span><span>
</span><span id="line-107"></span><span>    </span><span class="annot"><span class="hs-comment">-- ** From Descending Lists</span></span><span>
</span><span id="line-108"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#fromDescList"><span class="hs-identifier">fromDescList</span></a></span><span>
</span><span id="line-109"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#fromDescListWith"><span class="hs-identifier">fromDescListWith</span></a></span><span>
</span><span id="line-110"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#fromDescListWithKey"><span class="hs-identifier">fromDescListWithKey</span></a></span><span>
</span><span id="line-111"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#fromDistinctDescList"><span class="hs-identifier">fromDistinctDescList</span></a></span><span>
</span><span id="line-112"></span><span>
</span><span id="line-113"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Insertion</span></span><span>
</span><span id="line-114"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#insert"><span class="hs-identifier">insert</span></a></span><span>
</span><span id="line-115"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#insertWith"><span class="hs-identifier">insertWith</span></a></span><span>
</span><span id="line-116"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#insertWithKey"><span class="hs-identifier">insertWithKey</span></a></span><span>
</span><span id="line-117"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#insertLookupWithKey"><span class="hs-identifier">insertLookupWithKey</span></a></span><span>
</span><span id="line-118"></span><span>
</span><span id="line-119"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Deletion\/Update</span></span><span>
</span><span id="line-120"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#delete"><span class="hs-identifier">delete</span></a></span><span>
</span><span id="line-121"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#adjust"><span class="hs-identifier">adjust</span></a></span><span>
</span><span id="line-122"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#adjustWithKey"><span class="hs-identifier">adjustWithKey</span></a></span><span>
</span><span id="line-123"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#update"><span class="hs-identifier">update</span></a></span><span>
</span><span id="line-124"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#updateWithKey"><span class="hs-identifier">updateWithKey</span></a></span><span>
</span><span id="line-125"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#updateLookupWithKey"><span class="hs-identifier">updateLookupWithKey</span></a></span><span>
</span><span id="line-126"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#alter"><span class="hs-identifier">alter</span></a></span><span>
</span><span id="line-127"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#alterF"><span class="hs-identifier">alterF</span></a></span><span>
</span><span id="line-128"></span><span>
</span><span id="line-129"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Query</span></span><span>
</span><span id="line-130"></span><span>    </span><span class="annot"><span class="hs-comment">-- ** Lookup</span></span><span>
</span><span id="line-131"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#lookup"><span class="hs-identifier">lookup</span></a></span><span>
</span><span id="line-132"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#%21%3F"><span class="hs-operator">(!?)</span></a></span><span>
</span><span id="line-133"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#%21"><span class="hs-operator">(!)</span></a></span><span>
</span><span id="line-134"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#findWithDefault"><span class="hs-identifier">findWithDefault</span></a></span><span>
</span><span id="line-135"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#member"><span class="hs-identifier">member</span></a></span><span>
</span><span id="line-136"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#notMember"><span class="hs-identifier">notMember</span></a></span><span>
</span><span id="line-137"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#lookupLT"><span class="hs-identifier">lookupLT</span></a></span><span>
</span><span id="line-138"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#lookupGT"><span class="hs-identifier">lookupGT</span></a></span><span>
</span><span id="line-139"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#lookupLE"><span class="hs-identifier">lookupLE</span></a></span><span>
</span><span id="line-140"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#lookupGE"><span class="hs-identifier">lookupGE</span></a></span><span>
</span><span id="line-141"></span><span>
</span><span id="line-142"></span><span>    </span><span class="annot"><span class="hs-comment">-- ** Size</span></span><span>
</span><span id="line-143"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#null"><span class="hs-identifier">null</span></a></span><span>
</span><span id="line-144"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#size"><span class="hs-identifier">size</span></a></span><span>
</span><span id="line-145"></span><span>
</span><span id="line-146"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Combine</span></span><span>
</span><span id="line-147"></span><span>
</span><span id="line-148"></span><span>    </span><span class="annot"><span class="hs-comment">-- ** Union</span></span><span>
</span><span id="line-149"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#union"><span class="hs-identifier">union</span></a></span><span>
</span><span id="line-150"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#unionWith"><span class="hs-identifier">unionWith</span></a></span><span>
</span><span id="line-151"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#unionWithKey"><span class="hs-identifier">unionWithKey</span></a></span><span>
</span><span id="line-152"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#unions"><span class="hs-identifier">unions</span></a></span><span>
</span><span id="line-153"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#unionsWith"><span class="hs-identifier">unionsWith</span></a></span><span>
</span><span id="line-154"></span><span>
</span><span id="line-155"></span><span>    </span><span class="annot"><span class="hs-comment">-- ** Difference</span></span><span>
</span><span id="line-156"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#difference"><span class="hs-identifier">difference</span></a></span><span>
</span><span id="line-157"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#%5C%5C"><span class="hs-operator">(\\)</span></a></span><span>
</span><span id="line-158"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#differenceWith"><span class="hs-identifier">differenceWith</span></a></span><span>
</span><span id="line-159"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#differenceWithKey"><span class="hs-identifier">differenceWithKey</span></a></span><span>
</span><span id="line-160"></span><span>
</span><span id="line-161"></span><span>    </span><span class="annot"><span class="hs-comment">-- ** Intersection</span></span><span>
</span><span id="line-162"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#intersection"><span class="hs-identifier">intersection</span></a></span><span>
</span><span id="line-163"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#intersectionWith"><span class="hs-identifier">intersectionWith</span></a></span><span>
</span><span id="line-164"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#intersectionWithKey"><span class="hs-identifier">intersectionWithKey</span></a></span><span>
</span><span id="line-165"></span><span>
</span><span id="line-166"></span><span>    </span><span class="annot"><span class="hs-comment">-- ** Disjoint</span></span><span>
</span><span id="line-167"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#disjoint"><span class="hs-identifier">disjoint</span></a></span><span>
</span><span id="line-168"></span><span>
</span><span id="line-169"></span><span>    </span><span class="annot"><span class="hs-comment">-- ** Compose</span></span><span>
</span><span id="line-170"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#compose"><span class="hs-identifier">compose</span></a></span><span>
</span><span id="line-171"></span><span>
</span><span id="line-172"></span><span>    </span><span class="annot"><span class="hs-comment">-- ** General combining functions</span></span><span>
</span><span id="line-173"></span><span>    </span><span class="annot"><span class="hs-comment">-- | See &quot;Data.Map.Merge.Lazy&quot;</span></span><span>
</span><span id="line-174"></span><span>
</span><span id="line-175"></span><span>    </span><span class="annot"><span class="hs-comment">-- ** Unsafe general combining function</span></span><span>
</span><span id="line-176"></span><span>
</span><span id="line-177"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#mergeWithKey"><span class="hs-identifier">mergeWithKey</span></a></span><span>
</span><span id="line-178"></span><span>
</span><span id="line-179"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Traversal</span></span><span>
</span><span id="line-180"></span><span>    </span><span class="annot"><span class="hs-comment">-- ** Map</span></span><span>
</span><span id="line-181"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#map"><span class="hs-identifier">map</span></a></span><span>
</span><span id="line-182"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#mapWithKey"><span class="hs-identifier">mapWithKey</span></a></span><span>
</span><span id="line-183"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#traverseWithKey"><span class="hs-identifier">traverseWithKey</span></a></span><span>
</span><span id="line-184"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#traverseMaybeWithKey"><span class="hs-identifier">traverseMaybeWithKey</span></a></span><span>
</span><span id="line-185"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#mapAccum"><span class="hs-identifier">mapAccum</span></a></span><span>
</span><span id="line-186"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#mapAccumWithKey"><span class="hs-identifier">mapAccumWithKey</span></a></span><span>
</span><span id="line-187"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#mapAccumRWithKey"><span class="hs-identifier">mapAccumRWithKey</span></a></span><span>
</span><span id="line-188"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#mapKeys"><span class="hs-identifier">mapKeys</span></a></span><span>
</span><span id="line-189"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#mapKeysWith"><span class="hs-identifier">mapKeysWith</span></a></span><span>
</span><span id="line-190"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#mapKeysMonotonic"><span class="hs-identifier">mapKeysMonotonic</span></a></span><span>
</span><span id="line-191"></span><span>
</span><span id="line-192"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Folds</span></span><span>
</span><span id="line-193"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#foldr"><span class="hs-identifier">foldr</span></a></span><span>
</span><span id="line-194"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#foldl"><span class="hs-identifier">foldl</span></a></span><span>
</span><span id="line-195"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#foldrWithKey"><span class="hs-identifier">foldrWithKey</span></a></span><span>
</span><span id="line-196"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#foldlWithKey"><span class="hs-identifier">foldlWithKey</span></a></span><span>
</span><span id="line-197"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#foldMapWithKey"><span class="hs-identifier">foldMapWithKey</span></a></span><span>
</span><span id="line-198"></span><span>
</span><span id="line-199"></span><span>    </span><span class="annot"><span class="hs-comment">-- ** Strict folds</span></span><span>
</span><span id="line-200"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#foldr%27"><span class="hs-identifier">foldr'</span></a></span><span>
</span><span id="line-201"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#foldl%27"><span class="hs-identifier">foldl'</span></a></span><span>
</span><span id="line-202"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#foldrWithKey%27"><span class="hs-identifier">foldrWithKey'</span></a></span><span>
</span><span id="line-203"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#foldlWithKey%27"><span class="hs-identifier">foldlWithKey'</span></a></span><span>
</span><span id="line-204"></span><span>
</span><span id="line-205"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Conversion</span></span><span>
</span><span id="line-206"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#elems"><span class="hs-identifier">elems</span></a></span><span>
</span><span id="line-207"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#keys"><span class="hs-identifier">keys</span></a></span><span>
</span><span id="line-208"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#assocs"><span class="hs-identifier">assocs</span></a></span><span>
</span><span id="line-209"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#keysSet"><span class="hs-identifier">keysSet</span></a></span><span>
</span><span id="line-210"></span><span>
</span><span id="line-211"></span><span>    </span><span class="annot"><span class="hs-comment">-- ** Lists</span></span><span>
</span><span id="line-212"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#toList"><span class="hs-identifier">toList</span></a></span><span>
</span><span id="line-213"></span><span>
</span><span id="line-214"></span><span>    </span><span class="annot"><span class="hs-comment">-- ** Ordered lists</span></span><span>
</span><span id="line-215"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#toAscList"><span class="hs-identifier">toAscList</span></a></span><span>
</span><span id="line-216"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#toDescList"><span class="hs-identifier">toDescList</span></a></span><span>
</span><span id="line-217"></span><span>
</span><span id="line-218"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Filter</span></span><span>
</span><span id="line-219"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#filter"><span class="hs-identifier">filter</span></a></span><span>
</span><span id="line-220"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#filterWithKey"><span class="hs-identifier">filterWithKey</span></a></span><span>
</span><span id="line-221"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#restrictKeys"><span class="hs-identifier">restrictKeys</span></a></span><span>
</span><span id="line-222"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#withoutKeys"><span class="hs-identifier">withoutKeys</span></a></span><span>
</span><span id="line-223"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#partition"><span class="hs-identifier">partition</span></a></span><span>
</span><span id="line-224"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#partitionWithKey"><span class="hs-identifier">partitionWithKey</span></a></span><span>
</span><span id="line-225"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#takeWhileAntitone"><span class="hs-identifier">takeWhileAntitone</span></a></span><span>
</span><span id="line-226"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#dropWhileAntitone"><span class="hs-identifier">dropWhileAntitone</span></a></span><span>
</span><span id="line-227"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#spanAntitone"><span class="hs-identifier">spanAntitone</span></a></span><span>
</span><span id="line-228"></span><span>
</span><span id="line-229"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#mapMaybe"><span class="hs-identifier">mapMaybe</span></a></span><span>
</span><span id="line-230"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#mapMaybeWithKey"><span class="hs-identifier">mapMaybeWithKey</span></a></span><span>
</span><span id="line-231"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#mapEither"><span class="hs-identifier">mapEither</span></a></span><span>
</span><span id="line-232"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#mapEitherWithKey"><span class="hs-identifier">mapEitherWithKey</span></a></span><span>
</span><span id="line-233"></span><span>
</span><span id="line-234"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#split"><span class="hs-identifier">split</span></a></span><span>
</span><span id="line-235"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#splitLookup"><span class="hs-identifier">splitLookup</span></a></span><span>
</span><span id="line-236"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#splitRoot"><span class="hs-identifier">splitRoot</span></a></span><span>
</span><span id="line-237"></span><span>
</span><span id="line-238"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Submap</span></span><span>
</span><span id="line-239"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#isSubmapOf"><span class="hs-identifier">isSubmapOf</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#isSubmapOfBy"><span class="hs-identifier">isSubmapOfBy</span></a></span><span>
</span><span id="line-240"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#isProperSubmapOf"><span class="hs-identifier">isProperSubmapOf</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#isProperSubmapOfBy"><span class="hs-identifier">isProperSubmapOfBy</span></a></span><span>
</span><span id="line-241"></span><span>
</span><span id="line-242"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Indexed</span></span><span>
</span><span id="line-243"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#lookupIndex"><span class="hs-identifier">lookupIndex</span></a></span><span>
</span><span id="line-244"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#findIndex"><span class="hs-identifier">findIndex</span></a></span><span>
</span><span id="line-245"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#elemAt"><span class="hs-identifier">elemAt</span></a></span><span>
</span><span id="line-246"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#updateAt"><span class="hs-identifier">updateAt</span></a></span><span>
</span><span id="line-247"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#deleteAt"><span class="hs-identifier">deleteAt</span></a></span><span>
</span><span id="line-248"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#take"><span class="hs-identifier">take</span></a></span><span>
</span><span id="line-249"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#drop"><span class="hs-identifier">drop</span></a></span><span>
</span><span id="line-250"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#splitAt"><span class="hs-identifier">splitAt</span></a></span><span>
</span><span id="line-251"></span><span>
</span><span id="line-252"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Min\/Max</span></span><span>
</span><span id="line-253"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#lookupMin"><span class="hs-identifier">lookupMin</span></a></span><span>
</span><span id="line-254"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#lookupMax"><span class="hs-identifier">lookupMax</span></a></span><span>
</span><span id="line-255"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#findMin"><span class="hs-identifier">findMin</span></a></span><span>
</span><span id="line-256"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#findMax"><span class="hs-identifier">findMax</span></a></span><span>
</span><span id="line-257"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#deleteMin"><span class="hs-identifier">deleteMin</span></a></span><span>
</span><span id="line-258"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#deleteMax"><span class="hs-identifier">deleteMax</span></a></span><span>
</span><span id="line-259"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#deleteFindMin"><span class="hs-identifier">deleteFindMin</span></a></span><span>
</span><span id="line-260"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#deleteFindMax"><span class="hs-identifier">deleteFindMax</span></a></span><span>
</span><span id="line-261"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#updateMin"><span class="hs-identifier">updateMin</span></a></span><span>
</span><span id="line-262"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#updateMax"><span class="hs-identifier">updateMax</span></a></span><span>
</span><span id="line-263"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#updateMinWithKey"><span class="hs-identifier">updateMinWithKey</span></a></span><span>
</span><span id="line-264"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#updateMaxWithKey"><span class="hs-identifier">updateMaxWithKey</span></a></span><span>
</span><span id="line-265"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#minView"><span class="hs-identifier">minView</span></a></span><span>
</span><span id="line-266"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#maxView"><span class="hs-identifier">maxView</span></a></span><span>
</span><span id="line-267"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#minViewWithKey"><span class="hs-identifier">minViewWithKey</span></a></span><span>
</span><span id="line-268"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.html#maxViewWithKey"><span class="hs-identifier">maxViewWithKey</span></a></span><span>
</span><span id="line-269"></span><span>
</span><span id="line-270"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Debugging</span></span><span class="hs-cpp">
#ifdef __GLASGOW_HASKELL__
</span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.DeprecatedShowTree.html#showTree"><span class="hs-identifier">showTree</span></a></span><span>
</span><span id="line-273"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.DeprecatedShowTree.html#showTreeWith"><span class="hs-identifier">showTreeWith</span></a></span><span class="hs-cpp">
#endif
</span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.Debug.html#valid"><span class="hs-identifier">valid</span></a></span><span>
</span><span id="line-276"></span><span>    </span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-277"></span><span>
</span><span id="line-278"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Data.Map.Internal.html"><span class="hs-identifier">Data.Map.Internal</span></a></span><span>
</span><span id="line-279"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Data.Map.Internal.DeprecatedShowTree.html"><span class="hs-identifier">Data.Map.Internal.DeprecatedShowTree</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Data.Map.Internal.DeprecatedShowTree.html#showTree"><span class="hs-identifier">showTree</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Map.Internal.DeprecatedShowTree.html#showTreeWith"><span class="hs-identifier">showTreeWith</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-280"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Data.Map.Internal.Debug.html"><span class="hs-identifier">Data.Map.Internal.Debug</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Data.Map.Internal.Debug.html#valid"><span class="hs-identifier">valid</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-281"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Prelude.html#"><span class="hs-identifier">Prelude</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-282"></span></pre></body></html>